package com.zhangxu.microservice.system.biz.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zhangxu.microservice.system.biz.dto.CreateRoleDTO;
import com.zhangxu.microservice.system.biz.dto.RoleDTO;
import com.zhangxu.microservice.system.biz.dto.UpdateRoleDTO;
import com.zhangxu.microservice.system.dao.condition.RoleCondition;

/**
 * 角色服务接口
 */
public interface RoleService {

    /**
     * 创建角色
     *
     * @param createRoleDTO 创建角色参数
     * @return 角色ID
     */
    Long createRole(CreateRoleDTO createRoleDTO);

    /**
     * 更新角色
     *
     * @param updateRoleDTO 更新角色参数
     */
    void updateRole(UpdateRoleDTO updateRoleDTO);

    /**
     * 删除角色
     *
     * @param roleId 角色ID
     */
    void deleteRole(Long roleId);

    /**
     * 启用角色
     *
     * @param roleId 角色ID
     */
    void enableRole(Long roleId);

    /**
     * 禁用角色
     *
     * @param roleId 角色ID
     */
    void disableRole(Long roleId);

    /**
     * 根据ID获取角色
     *
     * @param roleId 角色ID
     * @return 角色信息
     */
    RoleDTO getRoleById(Long roleId);

    /**
     * 分页查询角色
     *
     * @param condition 查询条件
     * @return 角色分页信息
     */
    IPage<RoleDTO> rolePage(RoleCondition condition);
}